home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #15
/
Monster Media Number 15 (Monster Media)(July 1996).ISO
/
math
/
alged34.zip
/
ALGEDNED.HLP
< prev
next >
Wrap
Text File
|
1996-06-06
|
22KB
|
437 lines
Help tekst voor de Algebra EDitor (Vertaling: G. Leeten)
Copyright (c) 1994,1996 John Henckel
Toelating om deze software en zijn documentatie te gebruiken, te kopiëren, te
wijzigen, te verdelen, te verkopen, te vertalen voor elk doel is hier
gegarandeerd zonder kosten, indien hoger vermelde copyright verschijnt in elke
kopie en dat beide: de copyright en deze toelating zichtbaar voorhanden zijn
in de documentatie van het programma. Alle programma's die hierin bevat zijn
worden geleverd in de staat "as is", zoals ze zijn, zonder enkele garantie.
Eventuele garanties van verkoopbaarheid en geschiktheid voor een particulier
doel zijn expliciet afgewezen.
----------------------------------------------------------------------------
Ik ben John Henckel (internet: henckel@vnet.ibm.com). Ik ben een
computerhobbyist; ik schrijf graag programma's als hobby, en dit is er daar
een van. Ik raad tevens m'n 2D botsing simulator "Impact" aan geplaatst in
SimTel/msdos/simulatn. Dank aan mijn familie om mij hieraan te laten werken.
Dank aan mijn IBM manager in Rochester, Minnesota om mij toe te laten dit
programma het publiek gratis aan te bieden.
Ik heb ontdekt dat er twee soorten programma's zijn: spelen en werktuigen.
Een spel is een programma met zijn eigen doel, maar een werktuig laat U
toe zelf uw eigen doel te kiezen. Beide soorten kunnen plezant zijn om te
spelen, maar een spel kun je vlug moe worden, daar het slechts een zeer beperkt
kunstmatig gebied bestrijkt. Een werktuig daarentegen helpt u om je eigen
gedachten te ontdekken en te ontwikkelen en stimuleert uw creativiteit. Ik hoop
dat Alged een werktuig is dat voor u plezierig is in het gebruik.
Alged is een programma om algebra problemen op te lossen. Er zijn andere
programma's die symbolische formules bewerken, zoals Mathcad en Mathematica. De
volgende voordelen zijn specifiek voor Alged:
* Gratis! Zelfs de broncode is gratis!
* Compact (het werkt op een PC/XT met 256K geheugen)
* Eenvoudig te gebruiken, ideaal voor het onderwijs
* Snelle en soepele 2D en 3D grafieken
* Je kan het aanpassen en vertalen in andere talen
Natuurlijk zijn er beperkingen. Alged is in geen geval een produkt op
"commercieel" niveau (alhoewel ik er slechtere gezien heb!) Alged kent geen
matrixalgebra (probeer TRYAPL2, eveneens gratis), noch reeksen, integralen,
afgeleiden, of transcendente transformaties. Complexe getallen zijn enkel
ondersteund voor de 5 basisbewerkingen (+, -, * (maal), / (gedeeld door),
^ (machtsverheffing)). Alged is een werktuig voor symbolische wiskunde, daarom
zijn er opzettelijk geen "number crunching" algoritmen aanwezig.
In algedNED.doc vind je een korte inleiding.
-----------------------------------------
Instructies:
Het ALGED scherm heeft een menu van boven en een werkzone beneden. Links
beneden is de tijd en het percentage geheugen dat gebruikt is. (bij 100%
eindigt Alged.) Je bewerkt de formules in de werkzone door op delen ervan te
klikken en dan op menuvelden te klikken. De linker muisknop wordt in de
werkzone gebruikt om de actuele uitdrukking te kiezen of om een VELD uit te
pikken. Het gepikte wordt gemerkt. De rechter muisknop dient om de SLEUTEL
uitdrukking te kiezen. De "sleutel" wordt naar het benedendeel van het scherm
gekopieerd. Merk op dat het toegelaten is op de "sleutel" te klikken, zodat
het veld een onderdeel wordt van de "sleutel". Indien je computer geen muis
heeft, (of je voelt je geen kat om met een muis te werken) dan kan je [Page
Up], [Page Down] en [end] toetsen gebruiken om het veld te kiezen. Deze
toetsen dalen de tweetallige boom af in het geheugen. Je kan dit veld kopiëren
naar de "sleutel" door '.' in te tikken. Met 'k' kan je de "sleutel" vanuit
het klavier invoeren. De "sleutel" kan naar de werkzone gekopieerd worden met
[Ins(ert)]. Je kunt de "sleutel" verwijderen door [Enter] te drukken. Door de
werkzone manoeuvreer je met de pijltoetsen.
Sommige bewerkingen van het menu gebruiken enkel het veld, andere beide veld en
"sleutel". Volgende beschrijvingen zijn alleen voor het veld bestemd, ofwel is
het anders aangegeven.
De veelterm-bewerkingen (zoals "PolyFact" (veelterm ontbinding) en
"PolyDiv" (veelterm deling)) hebben de "Key" sleutel als optie. Indien
geen sleutel gegeven is, wordt de veranderlijke 'x' of de eerst in de
uitdrukking gevonden veranderlijke genomen. Indien een vergelijking
geselecteerd ("picked") is, dan kiezen de veelterm-bewerkingen
automatisch een van de twee leden.
----------------------------------------------------------------------------
Menu Beschrijving:
"vereenvoudig" [space] vereenvoudig uitdrukking: sorteert het, combineert
gemeenschappelijke termen, berekent getallen, en herschrijft het in canonieke
vorm.
"Distribute" [d] verdeelt de vermenigvuldiging over optelling en aftrekking, en
verdeelt exponenten over vermenigvuldiging en deling.
Merk op: Een vergelijkbare functie is "DistChild", toegewezen aan 'D'
(druk hoofdletter en 'd'). Deze functie verschilt op twee manieren:
1. "DistChild" gaat van boven naar beneden. Bij voorbeeld,
(x*(a + b))^2 ---> (x^2)*(a + b)^2 door "DistChild"
(x*(a + b))^2 ---> (x*a + x*b)^2 door "Distribute" (van binnen
naar buiten)
2. "DistChild" verdeelt de hoogste niveau factoren in een uitdrukking of
vergelijking niet. Met "DistChild" kan je het resultaat van een
ontbinding zoals "Ontbind factoren" of "ontbind 2^" of "ontbind 3^"
vereenvoudigen.
"Bereken" [b,p] berekent alle getallen. b.v. 3*2 => 6. Als je op dit
menuveld klikt met de rechtse knop (of [p] intikt) dan worden de gehele
getallen ontbonden in priemfactoren. (Dit wordt begrensd door de ?d optie).
"Integer" [i] zet reële getallen om in gehele getallen indien mogelijk. b.v.
1,5 => 3/2 Dit algoritme volgt twee strategieën. Eerst zoekt het naar
repeterende delen in het tiendelig deel van het getal. Er moeten minstens 2
cijfers in het repeterend deel terug komen. Indien er geen gevonden zijn dan
zoekt het naar een geheel getal, d, zodanig dat d*x een geheel getal is. De
gebruikers parameters ?e en ?d worden hier gebruikt.
"Associate" [a] roteert de elementen van een associatieve groep.
"geMene noeMer" [m] Dit is een WISSEL om op gemeenschappelijke noemer te
brengen of om de deling over optelling en aftrekking te verdelen.
"char 8 mode" [8] wisselt ASCII 7-bit of 8-bit. Dit is nuttig wanneer [Print
Screen] gebruikt wordt.
"Veelterm coëf" [v] verzamelt de coëfficiënten van een veelterm. Het
geselecteerd veld moet een veelterm zijn (geen vergelijking) en de "sleutel"
moet de uitdrukking zijn die als basis van de veelterm gebruikt wordt.
b.v. veld is a*x + b*x + c, "sleutel" is x ==> resultaat is c + (a + b)*x
DELETED "Prev" [up] blader terug
DELETED "Next" [down] blader vooruit, op het einde van de lijst gaat het verder
DELETED vanaf het begin.
DELETED "Left" [left] blader links
"centreer" [home] centreer de formules horizontaal (wordt automatisch gedaan).
DELETED "Right" [right] blader rechts
"\veelt del" [\] veelterm deling. Het veld moet een deling zijn (geen
vergelijking) en de teller moet een veelterm zijn van hogere of gelijke graad
dan de noemer. De "sleutel" moet de basis veranderlijke zijn.
b.v. veld is (x^2 - y^2)/(x - y) en "sleutel" is x. ==> resultaat is x + y.
"ontbind 2^" [2] ontbindt 'n 2de graads veelterm gebruik makend van de
vierkantsvergelijking. Het veld moet een 2de graads veelterm zijn (geen
vergelijking). De "sleutel" moet de basis veranderlijke zijn.
b.v. veld is (x^2 - y^2) en "sleutel" is x. ==> resultaat is (x + y)*(x - y).
"ontbind 3^" [3] ontbindt een 3de graads veelterm door de kubische
vergelijking. Het veld moet een 3de graads veelterm (geen vergelijking) zijn.
De "sleutel" moet de basisch veranderlijke bevatten.
b.v. veld is (x^3 - y^3) en "sleutel" is x.
==> resultaat (na "Integer" en verschillende "Bereken" en "vereenvoudig")
is: (x - y)*(x + (0,5 - 0,86i)*y)*(x + (0,5 + 0,86i)*y).
Opgelet: Deze functie is niet zonder fouten. Soms geeft ze een verkeerd
antwoord, soms verbruikt ze al het geheugen.
Het probleem lijkt zich bij niet-singuliere wortels te bevinden. Gebruik ze
enkel als noodoplossing.
"Ontbind factoren" [o] ontbindt 'n veelterm door rationale wortels te zoeken.
Het veld moet een veelterm zijn (geen vergelijking). De "sleutel" moet de
basis veranderlijke zijn.
b.v. veld is (x^4 - y^4) en "sleutel" is x.
==> resultaat is: (x - y)*(x + y)*(x^2 + y^2).
"sUbstitutie" [u] doet substitutie van de "sleutel" in het veld. De "sleutel"
moet een vergelijking zijn.
b.v. veld is a*x + b, "sleutel" is x = y - 1 ==> resultaat is a*(y - 1) + b.
NOTEER: de linker zijde van "sleutel" mag een algebraïsche uitdrukking zijn,
maar het kan zijn dat de associatie van het veld veranderd moet worden opdat de
substitutie zou werken. Je kan dit gebruiken met "= sleutel": om veld door de
"sleutel" te vervangen, tik '=u'.
"^N expand" [n] herleidt gehele exponenten tot vermenigvuldigingen.
b.v. x^3 ==> x*x*x
"exp Join" [j] verenigt de exponenten van dezelfde basis. Dit is het
omgekeerde van "distribute" voor exponenten.
"= sleutel" [=] Wijzig de "sleutel" in een vergelijking met het veld als linker
deel. Noch het veld noch de "sleutel" mag een vergelijking zijn voordat deze
bewerking uitgevoerd wordt.
b.v. veld is x + y, "sleutel" is z ==> resultaat "sleutel" is x + y = z
Nota: Je mag = en u gebruiken om het veld door de "sleutel" te vervangen.
"+ sleutel" [+] tel de "sleutel" op bij het veld. Als veld 'n vergelijking is,
dan wordt de "sleutel" bij beide zijden opgeteld. Indien "sleutel" een
vergelijking is dan worden de corresponderende zijden bij het veld opgeteld.
Indien noch veld noch "sleutel" een vergelijking is dan wordt "sleutel"
opgeteld en afgetrokken.
b.v. veld is x, "sleutel" is y ==> resultaat is x + y - y.
"- sleutel" [-] trek de "sleutel" af van het veld.
Zie nota's bij "+ sleutel".
"* sleutel" [*] vermenigvuldig het veld met de "sleutel".
Zie nota's bij "+ sleutel".
"/ sleutel" [/] deel het veld door de "sleutel".
Zie nota's bij "+ sleutel".
"^ sleutel" [^] verhef het veld tot de "sleutel" macht.
Zie nota's bij "+ sleutel".
"delete top" [Del] verwijder de bovenste uitdrukking van het scherm.
"geef Sleutel" [s] vraag een nieuwe "sleutel" in te tikken. Druk F6 Enter om
te eindigen. (De F6 moet een ^Z geven, gebruik anders Ctrl-z.) Je mag of infix
of postfix gebruiken afhankelijk van de optie ?f.
Infix voorbeeld z = (z^2 + y^2)^0.5.
Postfix voorbeeld z x 2 ^ y 2 ^ + 0.5 ^ =. Haakjes zijn niet toegelaten en
alle "tokens" moeten door blanks gescheiden zijn. Let op: het decimaal teken
is '.'
Opmerking: met "geef Sleutel" mag ALLES wat in een databestand kan voorkomen
ingebracht worden inbegrepen commentaar (") en opties als ?m 41.
(Uitzondering: bgi drijvers kunnen niet met ?g vervangen worden, maar de mode
en het palet kunnen veranderd worden. De ?f optie heeft enkel effect bij
end-of-file.) Gebruik het "insert sleutel" commando om de nieuwe "sleutel"
aan de uitdrukkingslijst toe te voegen.
"insert sleutel" [Ins] kopieert de "sleutel" naar de uitdrukkingslijst.
"EraseAll" [Alt-e] verwijderd alle uitdrukkingen van de werkzone (uitgenomen
de "sleutel").
"Laad" [l] laadt meer uitdrukkingen van een bestand. Nota: de voorgaande
uitdrukkingslijst wordt niet gewist.
"Red" [r] red de uitdrukkingslijst in een bestand. De "sleutel" wordt niet
gered.
"Write" [w] schrijf de uitdrukkingslijst naar een bestand in postfix formaat.
Dit heeft weinig zin, of je moet van postfix houden. Dit is een overblijfsel
van alged versie 2.1.
"]=rechts" []] breng de rechtse term (factor) van de linker zijde van een
vergelijking naar de rechter zijde.
b.v. veld is x + y = 3, resultaat is x = 3 - y.
"[=links" [[] breng de linkse term (factor) van de linker zijde van een vergelijking
naar de rechter zijde. b.v. veld is x + y = 3, resultaat is y = x + 3.
"Grafiek" [g] ga over in grafische mode en toon de grafiek van de functie. Een
grafische video adapter (CGA, EGA, VGA of hercules) is vereist en het
overeenkomende bgi bestand (zoals EGAVGA.BGI) moet zich in de actieve
folder bevinden. Alged vindt deze 4 modes automatisch. Indien je een
andere bgi file wilt gebruiken geef deze dan met de ?g optie mee.
------------------------------------------------------------------------------
Andere Opmerkingen:
Indien ALGED je bevalt of indien je suggesties hebt, zend me dan een email. Ik
vraag je geen geld, maar ik zou graag post ontvangen.
Wanneer je ALGED start vanaf de commando lijn, dan kan je meer bestanden
meegeven om te laden. ALGED tracht altijd eerst het bestand ALGED.1ST te
laden. Het best is hierin uw gebruikers opties te plaatsen, maar je mag er
eveneens formules in plaatsen.
Zie ALGED.1ST voor een lijst van alle gebruikers opties. ALGED gebruikt de
actieve video mode, bijgevolg kan je de mode zetten voordat ALGED gestart wordt
door b.v. MODE co80,43 in te tikken.
Het scherm algoritme door ALGED gebruikt is niet perfect, zo ziet men het
volgende:
1 2
---- y
2 + ----
x b
de breukstrepen zouden op dezelfde hoogte moeten staan. Dit kan gedaan worden
met de gebruikers optie ?y op 0 te zetten, maar dit geeft andere problemen op
het scherm.
Wanneer je een uitdrukking met de muis aanklikt wijst het zich vanzelf. De
uitzondering zijn de machten. Om een macht aan te klikken, plaats de muis
juist boven de rechter bovenhoek van de basis b.v. in
2
(x + y)
juist boven het ')' en klik.
Boven links op het menu staan "vereenvoudig" en "Distribute". Deze bewerkingen
zijn zeer nuttig om grote ingewikkelde uitdrukkingen te vereenvoudigen. Na
b.v. "\veelt del", kies ik gewoonlijk "Distribute" en "vereenvoudig"
afwisselend tot er niets meer veranderd.
Dit programma het minteken niet, bijgevolg moet -1*x ingegeven worden om -x aan
te geven. Het ondersteunt geen wortelvormen, bijgevolg moeten deze als machten
ingegeven worden. Om vierkantswortel(x) in te brengen moet je x^0.5 ingeven.
Let op: decimaal teken is altijd '.'!!!
Alle numerische waarden worden als IEEE 4-byte vlottende komma (double)
bewaard. Dit laat toe dat de exponenten gaan van -307 tot +307 en de basis
heeft 16 beduidende cijfers. ALGED toont slechts 15 cijfers omdat het laatste
cijfer soms onjuist is. Hier kan het gebeuren dat getallen er als gehele
getallen uitzien en het toch niet zijn. Zo kan je soms 1*x zien en na
vereenvoudiging verandert het niet in x. Om dit op te lossen kies "Integer" en
16de decimaal wordt verwijderd. Opgelet: wanneer je een probleem hebt met
zeer kleine getallen, zoals 1,23e-10, dan mag je "Integer" niet gebruiken of
beduidende cijfers worden verwijderd. Volgende speciale waarden worden
herkend...
pi = 3,14159265358979292
e = 2,71828182845904509
ALGED ondersteunt functies met tot 5 argumenten. Wanneer je een functie intikt
in postfix notatie moet het aantal argumenten meegegeven worden en de
functienaam moet beginnen met @ in de functie naam. Zo wordt de uitdrukking
f(x,sin(x),y) in postfix ingebracht als
x x 1 @sin y 3 @f
De volgende functienamen zijn gekend in berekeningen en grafieken.
Met 1 argument: sin, cos, tan, acos, asin, atan, cosh, sinh,
tanh, ln (basis e), log (basis 10), abs, rand, sign.
Met 2 argumenten: min, max, r, mod, atan2.
De goniometrische functies zijn in radialen. De functie r(x,y) gebruikt de
hypot functie van C die de hypotenuza geeft volgens: (x^2 + y^2)^0,5.
De atan2(y,x) is de hoek (in radialen, -pi tot pi) van de straal die de
oorsprong met (x,y) verbindt.
Veranderlijken mogen tot 24 "letters" bevatten. Functienamen mogen nochtans
slechts 7 "letters" lang zijn omdat de "pointers" naar de parameters in een
deel van het voor de naam voorbehouden geheugen geplaatst worden.
De speciale veranderlijke "i" is herkent als de vierkantswortel van min één.
Bijgevolg wordt i*i vereenvoudigd tot -1. Eveneens gaat i^7,3 over in
-1*i^1,3.
Imaginaire getallen zijn ondersteund in machten: (1+2i)^3 wordt
2,24^3*(cos(1,11*3) + i*sin(1,11*3)) wat gelijk is aan -11-22i. De conventie:
-pi<theta<=pi wordt gevolgd.
Imaginaire getallen worden niet berekend in functies, zoals sin(3*i).
Beide "vereenvoudig" en "Bereken" berekenen numerieke resultaten. Nochtans,
het verschil is dat "vereenvoudig" geen bewerkingen doet op gehele getallen,
die een niet-geheel getal voortbrengen. Bij voorbeeld, 4^0,5 wordt niet
vereenvoudigd door "vereenvoudig", maar wel door "Bereken".
Sommige veeltermbewerkingen werken slechts wanneer de uitdrukking eerst
volledig gedistribueerd en vereenvoudigd is.
Dit moet je oefenen met "Associate" en "Veelterm coëf". Deze bewerkingen zijn
nuttig voor vele zaken. "Associate" herschikt +|- of *|/ of =, wanneer ze
geselecteerd zijn.
De "Ontbind factoren" bewerking kan zeer traag zijn. Op een 486DX-33: om een
4de graads veelterm te ontbinden kan er 15 seconden nodig zijn. In het
algemeen geef ik toe dat er geen zweet gestopt is in het efficiënt maken van
ALGED. Het was reeds moeilijk genoeg.
Op maat snijden:
---------------
Het ALGED menu en andere tekst is te vinden in het ALGED.MNU bestand. Dit kan
je naar behoeven op maat maken met een tekst editor. Je kan de grootte en de
opmaak van de menu, de sneltoetsen of of eender welke tekst wijzigen. Je kan
het in een andere taal bij voorbeeld Italiaans vertalen. Wanneer je dit doet,
zend me dan een kopie, zodat ik ze kan verdelen. Bij het opstarten laad Alged
ALGEDxyz.MNU uit de aktieve folder, waar xyz de taal optie door ?l vastgelegd.
Indien ?l niet gegeven is in ALGED.1ST of in om het even welk data bestand, dan
wordt naar ALGED.MNU gezocht en geladen.
Een uiteindelijke opmerking over betrouwbaarheid. Dit programma is gemaakt als
een hobby en is niet betrouwbaar. Controleer de antwoorden door de bewerking
om te keren indien mogelijk. Je moet je werk dikwijls in een bestand redden.
Tijdens de ontwikkeling van dit programma heeft het menigmaal het systeem
vastgezet. Ik moest de stroom af zetten. Bijgevolg opgepast, vooral bij lange
bewerkingen zoals "Ontbind factoren".
"Dit zegt Jahwe: De wijze moet niet roemen op zijn wijsheid, de sterke niet
roemen op zijn kracht, de rijke niet op zijn rijkdom. Wie toch wil roemen, hij
moet er zich op beroemen, in te zien en te erkennen dat ik, Jahwe, genade
schenk, en recht en gerechtigheid vestig op aarde, want daarin vind Ik mijn
genoegen -godsspraak van Jahwe-." Jeremia 9.23 KBS
;--------------------------------------------------------------------------
; Dit is alged.1st. Wanneer alged gestart wordt tracht het eerst dit bestand
; te laden. Het formaat is hetzelfde als ieder ander gegevens bestand, maar
; ik denk dat het best gebruikt wordt om gebruikers-instellingen te zetten.
;
; Hier volgen de mogelijke opties en hun begin waarden. Indien een optie
; meermaals gezet wordt, hier of in een ander gegevens bestand, dan geldt
; alleen de laatst gevonden optie.
; Deze opties kunnen ook interactief met de EnterKey ingebracht worden.
;-----------------------------------------------------------------------------
?c 7 ; normale kleur (kleur = voorgrond + 16*achtergrond)
?s 14 ; selectie kleur (voor monochrome, neem 112)
?i 13 ; kleur voor komentaar (zichtbaar komentaar)
?m 31 ; menu kleur (voor monochrome, neem 112)
?e 13 ; max aantal beduidende cijfers, geldig 2...16 (gebruikt door Integer)
?d 1000 ; max noemer zoeken (gebruikt door Integer, Simplify, en Factrpoly)
?p 100 ; max macht (gebruikt door ^N expand)
?a 1 ; char mode (0=lelijk, ASCII-7)
?v 1 ; gebruik direct video (0=gebruik bios)
?y 1 ; pas y positie aan (0=aligneer breuken)
?. 0 ; decimalen 0=europees, 1=usa (enkel voor uitvoer)
?f 0 ; invoer formaat 0=infix, 1=postfix
?r 1 3 2 ; 3d color-by-derivative direction vector
;----------------------------------------------------------------
; Gebruik ?g <bgi-file> <mode> <palette start> <palette size>
; om de graphic drijver en mode te wijzigen.
; Hier volgen enkele voorbeelden,
; ?g svga256 0 32 24 ; 320x200 vga met regenboog palet
; ?g svga256 1 32 24 ; 640x480 super vga met regenboog palet
; ?g svga256 1 18 14 ; 640x480 super vga met grijs palet
; ?g svga256 2 32 24 ; 640x400 super vga met regenboog palet
; ?g svga256 3 32 24 ; 800x600 super vga met regenboog palet
; ?g svga256 4 32 24 ; 1024x768 super vga met regenboog palet
; ?g svga256 4 18 14 ; 1024x768 super vga met gray palet
; ?g *auto 0 1 3 ; voor CGA, gebruik deze voor 3 kleuren
; De drijver naam is het .bgi bestand zonder path of extentie.
; Het mode getal is door Borland gedefiniëerd; bios gebruikt een ander.
; Voor *auto wordt de hardware automatisch gevonden (tot vga).
; Indien GEEN SuperVga aanwezig is, dan is het beter *auto te gebruiken.
; Wanneer geen ?g gevonden is wordt de hoogste resolutie mode gebruikt.
;-------------------------------------------------------------------
; De ?l optie dient om de taal te kiezen voor de .mnu en .hlp bestanden.
; Als voorbeeld ?l FRA kiest ALGEDFRA.HLP en ALGEDFRA.MNU.
; .HLQ volgt dezelfde lijn.
?l ned
;
Einde van de helptekst. Druk een willekeurige toets om terug te keren.